/**
 * 部门（添加|修改）companyOption.js
 * 版本号： v1.0.0
 */
$(function () {
    //限制字段输入长度
    limitFieldLength();
    /**
     * 获取公司树形结构
     */
    // 此变量用于计数，避免二次进入判断
    var cliclCompCount = 1;
    $('#companyTree').combotree({
        url: CONTEXT_PATH + "/company/getTreeCompany.do",
        onSelect:function(){
            //选择公司时将计数置为1,为了能够提示，并将公司置为原来的值
            cliclCompCount = 1;
        },
        onChange: function (n, o) {
            //修改部门信息时，部门不能修改附属公司
            var officeId = $('#officeId').val();
            var parentId = $('#parentId').val();
            //officeId为空：新增，否则为修改
            if(null != officeId && officeId != ""){
                var companyId = $('#companyId').val();
                // “o” 为空表示首次进入
                if(null != o && o != ""){
                    // 部门为根节点的情况，不能修改所属公司
                    if(parentId == 0 && cliclCompCount == 1){
                        cliclCompCount = 2;
                        $('#companyTree').combotree('setValue', companyId);
                        $.messager.show({ title:"系统提示", msg: "部门所属公司不能修改！", timeout:3000, showType:"slide" });
                    }else{
                        if(cliclCompCount != 2){
                            // 部门为其他节点的情况，所属公司也不能修改
                            if(n != companyId){
                                $('#companyTree').combotree('setValue', companyId);
                                $('#officeTree').combotree('setValue', parentId);
                                $.messager.show({ title:"系统提示", msg: "部门所属公司不能修改！", timeout:3000, showType:"slide" });
                            }else{
                                // 重新加载所属部门
                                loadOffice(n);
                            }
                        }
                    }
                }else{
                    loadOffice(n);
                }
            }else{
                loadOffice(n);
            }
        }
    });


    //操作按钮点击
    $('#optionOffice').bind('click', function () {
        var params = $("#office_form").serialize();
        $("#office_form").form("submit", {
            cache: false,
            data: params,
            url: CONTEXT_PATH + "/office/save.do",
            onSubmit: function () {
                preventSubmit('office_form','optionOffice');
                return $(this).form("validate");
            },
            success: function (data) {
                var obj = JSON.parse(data);
                var url = CONTEXT_PATH + "/office/index.do";
                saveJump(obj,url);
            }
        });
    });


});

function loadOffice(n){
    $("#companyTree").combotree("getValue", n)
    $("#companyId").val($('#companyTree').combobox('getValue'));
    //重新选中公司后，需要将部门combobox清空
    $('#officeTree').combotree('clear');//清空选中项
    $('#officeTree').combotree('loadData', {});//清空option选项
    $('#officeTree').combotree({
        url: CONTEXT_PATH + "/office/getTree.do?companyId=" + n,
        onSelect: function (node) {
            var officeId =  $('#officeId').val();
            if(null != officeId && officeId != ""){
                var parentId = $('#parentId').val();
                // 根节点parentId为"0"情况下，不能修改
                if(parentId == 0){
                    $.messager.show({ title:"系统提示", msg: "根节点不能选择父节点！", timeout:3000, showType:"slide" });
                    $('#officeTree').combotree('setValue', "");
                    return;
                }
                if(officeId == node.id){
                    $('#officeTree').combotree('setValue', parentId);
                    $.messager.show({ title:"系统提示", msg: "父级部门与子部门不能相同！", timeout:3000, showType:"slide" });
                    return;
                }
            }
            $('#parentId').val(node.id);
        }
    });


}


window.onload = function () {
    //修改操作时，数据加载完成后给所属公司赋值
    var companyId = $('#companyId').val();
    var parentId = $('#parentId').val();

    if (companyId != null) {
        $('#companyTree').combotree('setValue', companyId);
    }
    if (parentId != null && parentId != 0) {
        $('#officeTree').combotree('setValue', parentId);
    }
    if(null == companyId){
       $('#officeTree').combobox({disabled:true});
    }
    //如果parentId 为空，禁用所属部门修改
    if("" == parentId){
        parentId = null;
    }
    if(0 == parentId){
        $('#officeTree').combobox({disabled:true});
    }
}






